package com.spring.design.singleton;

/**
 * 饿汉式
 * 类加载到内存后，就实例化一个单例，JVM保证线程安全，不怕多线程。
 * 简单使用，推荐使用。工作中想不出单例，就用这个，没错
 * 唯一缺点：不管用到与否，类装载时就完成初始化
 * Class.forName("")只把class放到内存，但不实例化
 * （话说你不用的，你装载它干啥）
 * 后期spring来保证单例就好了
 */
public class Singleton01 {

    private static final Singleton01 INSTANCE = new Singleton01();
    private Singleton01(){}// 定义私有的构造器，让别人new不出来

    public static Singleton01 gettInstance(){
        return INSTANCE;
    }

    public static void main(String[] args) {
        Singleton01 s1 = gettInstance();
        Singleton01 s2 = gettInstance();
        System.out.println(s1 == s2);// 证明这两个实例是同一个实例
    }

}
